home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / graphics / mandlbx1.arc / FILE.C < prev    next >
C/C++ Source or Header  |  1985-11-20  |  1KB  |  50 lines

  1. #include "\include\define.h"
  2. #include "\include\gemdefs.h"/**/
  3. #include "\include\osbind.h"/**/
  4. #define GRMODE   0           /* graphics mode 0 (320x200) */
  5. #define FSIZE  32034         /* size of DEGAS save-file */
  6.  
  7.    short palette[32];
  8.  
  9. /* save screen data to disk in DEGAS format */
  10. int write_screen(fname/*,palette*/) 
  11. char *fname ;
  12. {
  13.    char *scrnp ;
  14.    int fd, n ;
  15.    short gmode[1] ;
  16.  
  17.    scrnp = (char *)Physbase() ;  /* get pointer to display frame */
  18.    *gmode = GRMODE ;
  19.  
  20.    if ((fd = creatb(fname, 0755)) < 0) panic("open of '%s' failed\n",fname,0L);
  21.  
  22.    n = w≥ite(fd, gmode, 2) ;      /* write graphics mode */
  23.    n += write(fd, palette, 32) ;  /* write palette */
  24.    if ((n += write(fd, scrnp, 32000)) != FSIZE)  /* write screen */
  25.       panic("file write error: only %d bytes written\n",n,0L);
  26.    close(fd) ;
  27.    return(0) ;
  28. }
  29.  
  30. /* read file (DEGAS format) */
  31. int read_screen(fname/*,palette*/)
  32. char *fname ;
  33. /*short *palette ;*/
  34. {
  35.    int fd, n ;
  36.    short gmode[1] ;
  37.    char *scrnp ;
  38.  
  39.    if ((fd = openb(fname, 0)) < 0) panic("open of '%s' failed\n",fname,0L) ;
  40.  
  41.    scrnp = (char *)Physbase() ;
  42.    n = read(fd, gmode, 2) ;      /* read graphics mode */
  43.    n += read(fd, palette, 32) ;  /* read palette */
  44.    if ((n += read(fd, scrnp, 32000)) != FSIZE)  /* read screen */
  45.       panic("file write error: only %d bytes read\n",n,0L);
  46.    close(fd) ;
  47.    return(0) ;
  48. }
  49.  
  50.